
"""
# 迭代1 ： 实现一个登录功能
1. 定义两条数据 ，要求用户数据的字段包括角色，账户名称，密码，部门
2， 要求返回的格式是字典形式 ，包含两个字段 ：code和message ,code等于0代表成功，为非0值代表失败 ，message给出提示
    格式 ： {'code':1 ,'message':"用户名或密码错误"}
3. 输入的用户名和密码要求是从控制台输入 ，判断输入的用户名和密码是否和定义数据中的匹配，若匹配的话，返回登录成功的消息体 ，若失败，返回的是错误的消息体
4. 用户名输入错误，为空 ；密码为空，错误 都给出相应提示 ，如用户名不能为空
5. 若用户名或密码不匹配，都给出登录失败 ，请检查您的用户名或密码是否填写正确
6. 若登录失败的情况，不退出可以进行登录


# 迭代2 ：新增一个查询功能
1. 用户查询功能必须是在登录以后才能使用，否则给出权限不足 。
2. 若输入的用户名正确，返回对应登录用户的信息，password字段不显示。
3. 若输入的用户名不正确 ，给出无查询结果的提示
4. 支持模糊查询
"""

# 定义用户默认的数据
user_list = [{'role':'admin','account':'admin','password':'123456','dept':'test'},{'account':'test','password':'123456','role':'user','dept':'test'}]

# 定义默认发返回结果
result = {'code':0,'message':''}


# 定义登录函数
def login(username,password):

    # 1. 如果用户名为空或密码为空 ，给出用户名为空或密码为空
    if username is None or username == '':
        result.update({'code':1,'message':'用户名不能为空！'})
        return result
    if password is None or password == '':
        result.update({'code':2,'message':'密码不能为空！'})
        return result
    # 2. 用户名或密码不存在 ，给出用户名或密码错误

    # 3. 用户名和密码是否匹配 。
    for user_data in user_list:
        if username == user_data.get('account') and password == user_data.get('password'):
            result.update({'code':0,'message':'登录成功','user_list':user_list})
            return result

    # 不匹配的情况，请检查您的用户名或密码是否填写正确
    result.update({'code':3,'message':'登录失败，请检查用户名或密码是否填写正确！'})
    return result



if __name__ == '__main__':
    flag = True

    while flag:

        username = input("请输入用户名:")
        password = input("请输入密码:")
        login_result = login(username, password)
        print(login_result)
        if not login_result.get('code') == 0:
            continue

        flag = False
        # break